-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Article/programation reactive #117
base: main
Are you sure you want to change the base?
Conversation
|
||
Spring Reactor propulse le développement d'applications modernes vers de nouveaux sommets en leur conférant réactivité, performance et résilience. En s'alignant sur le Reactive Manifesto, cette technologie ouvre la voie à des systèmes distribués agiles et efficaces. Toutefois, son adoption requiert une solide compréhension des concepts fondamentaux et une évaluation minutieuse des besoins spécifiques de chaque projet. | ||
|
||
Face à l'évolution rapide des architectures modernes (cloud, microservices, événements), la programmation réactive s'impose comme une approche incontournable. Il est passionnant d'envisager les prochaines avancées dans ce domaine et d'imaginer les nouveaux outils qui transformeront encore davantage notre façon de concevoir des systèmes réactifs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ils sont déjà là (en Java : thread virtuels et structured concurrency (en preview)) mais pour remplacer la programmation réactive qui a de très gros défauts.
Sans en avoir un bonne connaissance, c'est la garantie de plus d'ennuis que de gain sur la mise en oeuvre (ce qui est fréquemment le cas).
Pour apporter un peu plus de valeur à cette article, il faudrait ajouter une partie à ce sujet.
J'ai fait une première (grosse) passe mais je devrai sûrement en refaire au moins une après les premières prises en compte |
|
||
== Les principes de la programmation réactive | ||
|
||
Les principes de la programmation réactive sont décrites dans le "Manifeste Réactif", qui énonce quatre caractéristiques clés{nbsp}: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Les principes de la programmation réactive sont décrites dans le "Manifeste Réactif", qui énonce quatre caractéristiques clés{nbsp}: | |
Les principes de la programmation réactive sont décrits dans le "Manifeste Réactif", qui énonce quatre caractéristiques clés{nbsp}: |
|
||
* Message-Driven (Basé sur les Messages) : les systèmes réactifs communiquent par la transmission de messages asynchrones, facilitant la connexion et le découplage des composants. | ||
|
||
== Les bibliotheques de la programmation réactive |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
== Les bibliotheques de la programmation réactive | |
== Les bibliothèques de la programmation réactive |
|
||
== Les bibliotheques de la programmation réactive | ||
|
||
Les bibliotheques de la programmation réactive sont basés sur deux modèles qui ont été portées dans le JDK 9 avec l'API Flow |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Les bibliotheques de la programmation réactive sont basés sur deux modèles qui ont été portées dans le JDK 9 avec l'API Flow | |
Les bibliothèques de la programmation réactive sont basées sur deux modèles : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
une seule des deux correspond à l'API Flow
|
||
* Interopérabilité : Fournir une interface standard pour que différentes bibliothèques réactives puissent fonctionner ensemble. | ||
|
||
Les principales interfaces de Reactive Streams sont{nbsp}: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Les principales interfaces de Reactive Streams sont{nbsp}: | |
Les principales interfaces de Reactive Streams, portées dans l'API Flow du JDK 9, sont{nbsp}: |
|
||
Ces deux types sont les composants de base utilisés pour modéliser des flux de données asynchrones en Java avec Reactor. | ||
|
||
En pratique un 'Flux' peut être sérialisé sous plusieur formes{nbsp}: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
En pratique un 'Flux' peut être sérialisé sous plusieur formes{nbsp}: | |
En pratique un 'Flux' peut être sérialisé sous plusieurs formes{nbsp}: |
|
||
'WebClient' est une classe fournie par Spring WebFlux pour effectuer des appels HTTP non bloquants (client HTTP réactif). | ||
|
||
Nous allons initialiser un `WebClient` en invoquant la méthode `create("http://example.com")` en lui passant en paramètre l'URL de base `http://example.com`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nous allons initialiser un `WebClient` en invoquant la méthode `create("http://example.com")` en lui passant en paramètre l'URL de base `http://example.com`. | |
Nous allons initialiser un `WebClient` en invoquant la méthode `create()` en lui passant en paramètre l'URL de base `http://example.com`. |
|
||
Nous allons initialiser un `WebClient` en invoquant la méthode `create("http://example.com")` en lui passant en paramètre l'URL de base `http://example.com`. | ||
|
||
La méthode `get()` initie une requête HTTP de type `GET` et la méthode `uri("/api/data")` spécifie le chemin relatif de l'API. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
La méthode `get()` initie une requête HTTP de type `GET` et la méthode `uri("/api/data")` spécifie le chemin relatif de l'API. | |
La méthode `get()` initie une requête HTTP de type `GET` et la méthode `uri("/api/data")` spécifie le chemin relatif de l'API |
|
||
La méthode `get()` initie une requête HTTP de type `GET` et la méthode `uri("/api/data")` spécifie le chemin relatif de l'API. | ||
cible (ajouté à l'URL de base du `WebClient`). La méthode `retrieve()` exécute la requête et récupère la réponse pour être traitée. | ||
Enfin, `bodyToMono(String.class)` extrait le corps de la réponse HTTP et le convertit en un objet de type Mono<String>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enfin, `bodyToMono(String.class)` extrait le corps de la réponse HTTP et le convertit en un objet de type Mono<String>, | |
Enfin, la méthode `bodyToMono(String.class)` extrait le corps de la réponse HTTP et le convertit en un objet de type `Mono<String>`, |
Enfin, `bodyToMono(String.class)` extrait le corps de la réponse HTTP et le convertit en un objet de type Mono<String>, | ||
permettant de manipuler la réponse asynchrone dans un pipeline réactif. Si la requête réussit, le contenu de la réponse sera | ||
disponible sous forme de chaîne dans le `Mono`. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Que se passe t-il en cas d'erreur ? comment gérer une erreur ?
|
||
== Conclusion: | ||
|
||
Spring Reactor propulse le développement d'applications modernes vers de nouveaux sommets en leur conférant réactivité, performance et résilience. En s'alignant |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cette tournure ne me semble pas "d'origine humaine" car beaucoup trop pompeuse. Pourrais tu la reformuler de manière plus sobre ?
Suivi revue article
Points à prendre en compte durant la relecture